Method and system for medium access control (MAC) layer specialization for voice and multimedia data streams

ABSTRACT

Aspects of a method and system for medium access control (MAC) layer specialization for voice and multimedia data streams are presented. Aspects of the method include determining a number of attempts for transmitting one or more medium access control (MAC) frames. Aspects of the system may include a processor that enables determination of a number of attempts for transmitting one or more MAC frames. A maximum number for such attempts may be determined based on one or more priority levels associated with different portions of multimedia information being communicated via a wireless medium and contained within the one or more MAC frames.

CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE

The present U.S. Utility Patent Application claims priority under 35U.S.C. §120, as a continuation of U.S. Utility patent application Ser.No. 11/492,381, filed on Jul. 25, 2006, issuing as U.S. Pat. No.8,411,581, which is incorporated herein by reference in its entirety forall purposes.

This application also makes reference to: U.S. patent application Ser.No. 11/492,667 filed on Jul. 25, 2006; U.S. patent application Ser. No.11/492,391 filed on Jul. 25, 2006; U.S. patent application Ser. No.11/492,721 filed on Jul. 25, 2006; and U.S. patent application Ser. No.11/492,390 filed on Jul. 25, 2006, of which all four are incorporatedherein by reference in its entirety for all purposes.

FIELD OF THE INVENTION

Certain embodiments of the invention relate to data communications. Morespecifically, certain embodiments of the invention relate to a methodand system for medium access control (MAC) layer specialization forvoice and multimedia data streams.

BACKGROUND OF THE INVENTION

A network may comprise a plurality of communications media andcommunications devices that facilitate the transfer of informationbetween a transmitting terminal and at least one receiving terminal.Information may be transmitted via a network in messages, packets,and/or frames. Various communication protocols may be utilized tofacilitate the transfer of information in a network. Some transportlayer data protocols may control the amount of information that may betransmitted during a time interval. The transmission control protocol(TCP) may be considered to be an example of one such protocol. The TCPmay limit the amount of information that is transmitted during a timeinterval based on a congestion window and slow start. At the beginningof transmission of an information flow, the congestion window may be setto an initial value. This may result in a relatively small amount ofinformation being transmitted from a transmitting terminal to areceiving terminal. The receiving terminal may subsequently communicatean acknowledgement upon receipt of the information that was transmittedby the transmitting terminal.

Upon receipt of the acknowledgement, the transmitting terminal mayincrease the value associated with the congestion window to a numberlarger than the initial value, and transmit subsequent information basedon the larger value that is associated with the congestion window. Thismay result in a larger amount of information being transmitted thanduring a comparable time interval in which the value associated with thecongestion window is smaller. The size of the congestion window mayincrease with the increase in the value associated with the congestionwindow. A larger congestion window may also result in a higherinformation transfer rate between the transmitting terminal and thereceiving terminal. The receiving terminal may communicate subsequentacknowledgements upon receipt of subsequent information. Thetransmitting terminal may continue to increase the size of thecongestion window upon receipt of a subsequent acknowledgement.

In an instance in which the transmitting terminal does not receive acorresponding acknowledgement to previously transmitted information, thetransmitting terminal may determine that the receiving terminal did notreceive the previously transmitted information. The transmittingterminal may retransmit, or resend, previously transmitted informationfor which a corresponding acknowledgement was not received. In addition,the transmitting terminal may determine that congestion may exist in thenetwork resulting in the previously transmitted information not beingreceived by the receiving terminal. The previously transmittedinformation may be considered by the transmitting terminal to be “lost”in the network. In response to a determination of congestion in thenetwork, or network congestion, the transmitting terminal may alsoreduce the size of the congestion window. The reduction in the size ofthe congestion window may result in a reduction in the informationtransfer rate between the transmitting terminal and the receivingterminal. Once reduced, the size of the congestion window maysubsequently begin to increase once again. Thus, a slow start recoverymay be initiated at the transmitting terminal.

In some wireless communications networks, fading conditions within thewireless communications medium, and not congestion within the network,may result in transmitted information not being received by thereceiving terminal. The fading conditions may be temporary, thus it maybe undesirable for a transmitting terminal to enter a slow start stateas a result of a temporary loss of data due to fading conditions withinthe wireless communications medium. In some systems, TCP may be utilizedfor the transmission of multimedia information, comprising voice, video,and/or data. The real time nature of multimedia information may make itundesirable for the transmitting terminal to enter a slow start state.

Further limitations and disadvantages of conventional and traditionalapproaches will become apparent to one of skill in the art, throughcomparison of such systems with some aspects of the present invention asset forth in the remainder of the present application with reference tothe drawings.

BRIEF SUMMARY OF THE INVENTION

A system and/or method is provided for medium access control (MAC) layerspecialization for voice and multimedia data streams, substantially asshown in and/or described in connection with at least one of thefigures, as set forth more completely in the claims.

These and other advantages, aspects and novel features of the presentinvention, as well as details of an illustrated embodiment thereof, willbe more fully understood from the following description and drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a block diagram of exemplary communications circuitry that maybe utilized in connection with an embodiment of the invention.

FIG. 2 illustrates an exemplary architecture for source layeroptimization for transmitting data, in accordance with an embodiment ofthe invention.

FIG. 3 illustrates an exemplary MIMO architecture with feedback from areceiver to a transmitter, in accordance with an embodiment of theinvention.

FIG. 4 is an exemplary flowchart illustrating message exchanges in asuccessful TCP communication, which may be utilized in connection withan embodiment of the invention.

FIG. 5 is an exemplary flowchart illustrating message exchanges in anunsuccessful MAC communication, which may be utilized in connection withan embodiment of the invention.

FIG. 6 is an exemplary flowchart illustrating message exchanges in anunsuccessful MAC communication for low priority level information, inaccordance with an embodiment of the invention.

FIG. 7 is an exemplary flowchart illustrating message exchanges in anunsuccessful MAC communication for high priority level information, inaccordance with an embodiment of the invention.

FIG. 8 is an exemplary flowchart illustrating exemplary steps for asystem for MAC layer specialization for voice and multimedia datastreams, in accordance with an embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Certain embodiments of the invention may be found in a method and systemfor medium access control (MAC) layer specialization for voice andmultimedia data streams. Aspects of the method comprise determining anumber of attempts for transmitting one or more MAC frames. Aspects ofthe system may comprise a processor that enables determination of anumber of attempts for transmitting one or more MAC frames. A maximumnumber for such attempts may be determined based on one or more prioritylevels associated with different portions of multimedia informationbeing communicated via a wireless medium and contained within the one ormore MAC frames.

FIG. 1 is a block diagram of exemplary communications circuitry that maybe utilized in connection with an embodiment of the invention. Withreference to FIG. 1, there is shown a memory processor 172, atransceiver 174, an RF front end 180, a plurality of receive antennas176 a, . . . ,176 n, and a plurality of transmitting antennas 178 a, . .. ,178 n. The transceiver 174 may comprise a processor 182, a receiver184, and a transmitter 186.

The memory 172 may enable storage and/or retrieval of information thatmay be transmitted via one or more transmitting antennas 178 a, . . . ,178 n, received via one or more receive antennas 176 a, . . . , 176 n,and/or storage of code that may enable control of the operation of thetransceiver 174.

The processor 182 may enable digital receiver and/or transmitterfunctions in accordance with applicable communications standards. Thesefunctions may comprise, but are not limited to, tasks performed at lowerlayers in a relevant protocol reference model. These tasks may furthercomprise the physical layer convergence procedure (PLCP), physicalmedium dependent (PMD) functions, and associated layer managementfunctions.

The receiver 184 may be enable digital receiver functions that maycomprise, but are not limited to, fast Fourier transform processing,beamforming processing, equalization, demapping, demodulation control,deinterleaving, depuncture, and decoding. The transmitter 186 may enabledigital transmitter functions that comprise, but are not limited to,coding, puncture, interleaving, mapping, modulation control, inversefast Fourier transform processing, beamforming processing. The RF frontend 180 may enable reception of analog RF signals via antennas 176 a, .. . , 176 n, converting the RF signal to baseband, and generatingdigital representations of the received analog baseband signals. Thedigital representation may be a complex quantity comprising I and Qcomponents. The RF front end 180 may also transmit analog RF signals viaan antenna 178 a, . . . ,178 n, converting a digital baseband signal toan analog RF signal.

In operation, the processor 182 may receive data from the receiver 184.The processor 182 may store received data to the memory 172 forsubsequent analysis and/or processing. The processor 182 may retrieveinformation from the memory 172. The retrieved information may betransmitted via an RF channel by the transmitter 186. The processor 182may associate one or more priority classes to the retrieved information.The transmitter 186 may process and transmit the information via the RFchannel based on the corresponding priority classes.

FIG. 2 illustrates an exemplary architecture for source layeroptimization for transmitting data, in accordance with an embodiment ofthe invention. Referring to FIG. 2, there is shown a processor 210 and atransmit block 215. The transmit block 215 may comprise a source encoderblock 220, a memory block 222, a source layer multiplexer block 224, aPHY/MAC block 226, a cross-layer partitioner block 228, a parametercontrol block 230, and transmit antennas 232 a, . . . , 232 b.

The source encoder block 220 may comprise suitable logic, circuitry,and/or code that may be utilized to enable compression of data prior totransmission. For example, the compressed data may be video data inMPEG-4 format. The source encoder block 220 may also communicateinformation about the compressed data to the cross-layer partitionerblock 228. The information communicated may relate to the type ofcompression. For example, if the compressed data comprises video data,the source encoder block 220 may communicate the specific type ofcompression, such as MPEG-1, MPEG-2, MPEG-4, H.261, H.263, or H.264. Thesource encoder block 220 may also communicate the type of chromasubsampling used, such as, for example, 4-4-4, 4-2-2, or 4-2-0 chromasubsampling.

The source layer multiplexer block 224 may comprise suitable logic,circuitry, and/or code that may be utilized to enable reading data from,for example, the memory block 222 and communicating various portions ofthe data to the PHY/MAC 226. The data may be split into the variousportions according to information from the cross-layer partitioner block228. The information from the cross-layer partitioner block 228 maycomprise, for example, priority for the various portions of the data.The cross-layer partitioner block 228 may also indicate that portions ofdata with certain priority may be communicated via certain outputs ofthe source layer multiplexer block 224.

The PHY/MAC block 226 may comprise suitable logic, circuitry, and/orcode that may be utilized to enable conversion of input data in adigital format to output suitably modulated analog data ready fortransmission. For example, the PHY/MAC block 226 may apply a FEC code tothe digital data. The PHY/MAC block 226 may also apply a specific RFmodulation to the analog signal, which may have been converted from thedigital data. The PHY/MAC block 226 may additionally communicate analogsignals to different transmit antennas 232 a, . . . , 232 b, in a partof a multiple-input multiple-output (MIMO) architecture.

In an embodiment of the invention, the PHY/MAC block 226 may receive oneor more streams of digital data. The PHY/MAC block 226 may then operateon the multiple streams as indicated by, for example, the parametercontrol block 230. Accordingly, the PHY/MAC block 226 may, for example,apply a specific FEC code to each digital stream. Each digital streammay then be converted to analog RF signal, which may be modulated by aspecific RF modulation scheme. Each modulated RF signal may then becommunicated to one or more antennas to be transmitted.

The cross-layer partitioner block 228 may comprise suitable logic,circuitry, and/or code that may be utilized to enable assigning apriority to portions of data in the memory block 222. The priority maybe based on, for example, perceived importance of the information in thememory block 222. For example, if the data in the memory block 222comprises video data relating to video frames, a portion of the datathat comprises information about an entire frame, such as, example, anI-frame, may have a high priority. Other frames, such as, for example,P-frames may have a lower priority than I-frames since P-frames maydepend on the I-frames for additional information. P-frames that dependon other primary P-frames may be, for example, assigned a lower prioritythan the P-frames that may only depend on I-frames. A B-frame thatdepends on a prior and a subsequent frame may be assigned, for example,a lowest priority. The number of priorities may be design and/orimplementation dependent.

The cross-layer partitioner block 228 may also indicate to the sourcelayer multiplexer block 224 that data with certain priorities may becommunicated to the PHY/MAC block 226 via specific outputs of the sourcelayer multiplexer block 224. The cross-layer partitioner block 228 maythen communicate to the parameter control block 230 those operationsthat may be performed on the various streams of data communicated by thesource layer multiplexer 224.

Specific streams of data may be communicated to specific transmitantennas. The cross-layer partitioner block 228 may have informationregarding the propagation path from each transmit antenna 232 a, . . . ,232 b to a receive antenna, where data transmitted via one transmitantenna may be received with fewer bit errors, for example, than datatransmitted by another transmit antenna. Accordingly, this informationmay be used to determine which data may be transmitted via whichtransmit antenna. The information regarding the propagation path foreach transmit antenna may be generated, for example, from feedbackinformation from the receiving devices. Alternatively, the informationmay be generated from feedback information from a receiver co-locatedwith the transmit block 215. The information may be utilized for amethod of MIMO transmission referred to as beamforming.

U.S. patent application Ser. No. 11/492,721, filed on Jul. 25, 2006,provides further information on beamforming, which is incorporatedherein by reference in its entirety.

The parameter control block 230 may comprise suitable logic, circuitry,and/or code that may be utilized to enable controlling of variousoperations to the digital data in the PHY/MAC block 226. For example,the parameter control block 230 may determine the FEC code and/or the RFmodulation that may be used by the PHY/MAC block 226 for specificportions of data. The parameter control block 230 may also determinewhich antennas may be used to transmit which portions of data bycontrolling routing of the data within the PHY/MAC block 226 to thespecific antennas.

However, there may be other embodiments of the invention that routesignals to specific antennas using other methods. For example, someembodiments of the invention may select the antenna used to transmitdata by selecting the source layer multiplexer 224 output used tocommunicate data from the source layer multiplexer 224 to the PHY/MAC226. Data communicated to the PHY/MAC 226 via specific outputs to thePHY/MAC 226 may be transmitted via specific transmit antennas. Forexample, the data, Output1, may be transmitted by the transmit antenna232 a, and the data, Output2, may be transmitted by the transmit antenna232 b.

In operation, the source encoder block 220 may compress data and storethe compressed data in the memory block 222. For simplicity, the datamay be assumed to be video data compressed using the MPEG-4 format, twopriority levels may be used—a high priority level and a low prioritylevel, and Output1 data and Output2 data may be transmitted by thetransmit antennas 232 a and 232 b, respectively. The source encoderblock 220 may communicate to the cross layer partitioner block 228 thatthe compressed data is video data using the MPEG-4 format. The sourceencoder block 220 may also communicate, for example, start and endmemory addresses for the stored video data corresponding to a frame, theframe number, and the type of frame that may be stored. The type offrame may be, for example, I-frame, P-frame, and B-frame. Otherinformation may also be communicated, such as, for example, the chromasub-sampling format.

The cross layer partitioner block 228 may then determine a priority toassign to each frame. An exemplary priority level algorithm may assign ahigh priority for all I-frames and a low priority for all other frames.The priority for the video data in the memory block 222 may becommunicated to the source layer multiplexer block 224. The source layermultiplexer 224 may read data from the memory block 222, and may output,for example, high priority data as Output1 and the low priority data asOutput2.

The cross layer partitioner block 228 may also communicate to theparameter control block 230 the operations to be applied to each streamof data, namely, Output1 and Output2. For example, the parameter controlblock 230 may indicate that the high priority data, Output1, may haveapplied to it a forward error correction (FEC) code A that may have agreater overhead in the number of bits used than a FEC code B. However,using the FEC code A may allow a receiving unit to correct a largernumber of faulty bits than when using the FEC code B.

The cross layer partitioner block 228 may also communicate to theparameter control block 230 to use, for example, quadrature phase shiftkeying (QPSK) RF modulation rather than 16 quadrature amplitudemodulation (16 QAM) RF modulation for the high priority data Output1.The QPSK RF modulation may have a smaller data throughput than the 16QAM RF modulation, however, the QPSK RF modulation may be more reliablefor a given transmission environment. Additionally, the transmit antenna232 a may exhibit more reliable transmission characteristics than thetransit antenna 232 b. If the transmission environment changes such thatthe transmit antenna 232 b exhibits a more reliable transmissioncharacteristics than the transmit antenna 232 a, then the cross layerpartitioner block 228 may indicate that the higher priority data beoutput as Output2.

The cross layer partitioner block 228 may also take in to accountfeedback information from the receiving device to maximize throughputfor transmission of the high priority and low priority data. This mayallow, for example, the cross layer partitioner block 228 to select froma plurality of FEC codes and from a plurality of RF modulation schemesfor a plurality of priority levels. Similarly, MIMO transmission mayutilize beamforming, in which one antenna may be selected fortransmission of particular stream of data, or a plurality of antennasmay be selected for transmission of a particular stream of data.

Although feedback information from a receiving device may be used fortransmission, the invention need not be so limited. For example,feedback data from a receiver that is co-located with the transmittingdevice may also be used. Accordingly, for example, the processor 210 maycommunicate the feedback data and/or instructions to the transmit block215. For example, the processor 210 may process the feedback data from aco-located receiving device, and communicate information to the transmitblock 215. The information may be used, for example, to control theoperations on the data streams by the PHY/MAC block 226.

U.S. application Ser. No. 11/327,690 filed Jan. 6, 2006, provides adetailed description of beamforming, and feedback in a MIMO system,which is hereby incorporated herein by reference in its entirety.

Although an embodiment of the invention may have been described using aplurality of functional blocks, the invention need not be so limited.Accordingly, other embodiments of the invention may use different blocksthat may encompass various functionalities.

FIG. 3 illustrates an exemplary MIMO architecture with feedback from areceiver to a transmitter, in accordance with an embodiment of theinvention. Referring to FIG. 3, there is shown the transmitting terminal312 and the receiving terminal 310, which may receive the datatransmitted by the transmitting terminal 312. The transmitting terminal312 may transmit signals via the transmit antennas 312 a and 312 b, andthe receiving terminal may receive signals via the antennas 310 a and310 b. The transmitting terminal 312 may generate the RF signals tx₁ andtx₂, which may be transmitted via the transmit antennas 312 a and 312 b,respectively. The transmitted RF signals may be represented by s1 ands2. The signals received by the receive antennas 310 a and 310 b may berepresented by R1 and R2, respectively.

In operation, a receive antenna, for example, the receive antenna 310 a,may receive signals from a plurality of transmit antennas, for example,the transmit antennas 312 a and 312 b. In some instances, the transmitantennas 312 a and 312 b may transmit the same data. In other instances,the transmit antennas 312 a and 312 b may transmit different data. Thereceiving terminal 310 may process the received signals R1 and R2 toestimate what information may have been transmitted by the transmittingterminal 312. The receiving terminal 310 may also generate varioussignal metrics such as, for example, the SNR and bit error rate. Thesignal metrics may be fed back to the transmitting terminal 312.

For example, the transmitting terminal 312 may transmit different datavia the transmit antennas 312 a and 312 b. The receiving terminal 310may also process the received signal R1 for the data transmitted by thetransmit antenna 312 a, and the received signal R2 for the datatransmitted by the transmit antenna 312 b. Accordingly, if the bit errorrate for the received signal R1 is less than the bit error rate for thereceived signal R2, this information may be fed back to the transmittingstation 312. The transmitting station 312 may then assign, for example,the transmit antenna R1 for the high priority data and the transmitantenna R2 for the low priority data. Similarly, the bit error rate andother metrics fed back to the transmitting terminal 312 may be used bythe transmitting terminal 312 to select, for example, different FECcodes and/or RF modulation schemes.

FIG. 4 is an exemplary flowchart illustrating message exchanges in asuccessful TCP communication, which may be utilized in connection withan embodiment of the invention. Referring to FIG. 4, there is shown atransmitting terminal 432 and a receiving terminal 430. The transmittingterminal may comprise a plurality of communication entities comprising acoordination function 432 a, a TCP entity 432 b, and a MAC entity 432 c.The receiving terminal may comprise a plurality of communicationentities comprising a TCP entity 430 a, and a MAC entity 430 b.

FIG. 4 illustrates an exemplary exchange of messages from a TCP entity432 b in a transmitting terminal 432 and a corresponding TCP entity 430a in a receiving terminal 430. The messages may be utilized tocommunicate multimedia information, which may comprise voice, videoand/or data information, for example. The messages may comprise TCPpackets, and MAC frames, for example. A MAC frame may comprise a TCPpacket by encapsulating the TCP packet, for example.

A MAC frame may be defined in various IEEE 802 documents and standards,for example. A TCP packet may be defined in various Internet EngineeringTask Force (IETF) request for comments (RFC) documents and standardssuch as RFC 793, for example.

In step 402, the TCP entity 432 b may communicate a TCP packet 402 tothe MAC entity 432 c. In step 404, the TCP entity 432 b may communicateinformation to the coordination function 432 a. The communicatedinformation may comprise an indication of the TCP window size utilizedby the transmitting terminal 432 for transmitting information to thereceiving terminal 430, Snd.Win=M. M may indicate an amount of data, asmeasured in octets, for example. The variable M may represent a numberwhose value is greater than 1, for example. The communicated informationmay also comprise a start TCP timer indication. The TCP timer indicationmay indicate a start time for a time duration within which anacknowledgement is expected from the receiving terminal 430. Failure toreceive an acknowledgement within the time duration may result in theTCP entity 432 b reaching a TCP timeout time instant, and subsequentlyentering a slow start state in its communications with the correspondingTCP entity 430 a. Prior to reaching the TCP timeout time instant, theTCP entity 432 b may attempt to retransmit the TCP packet (step 402) oneor more times.

In step 406, the MAC entity 432 c may encapsulate the TCP packet (step402) and communicate a MAC frame to the MAC entity 430 b. In step 408,the MAC entity 430 b may communicate a MAC acknowledgement frame to theMAC entity 432 c. Receipt of the MAC acknowledgement frame by the MACentity 432 c may indicate that the MAC frame (step 406) was successfullyreceived by the MAC entity 430 b. In step 410, the MAC entity 430 b maycommunicate a TCP packet to the TCP entity 430 a. The TCP packet (step410) may be derived by de-encapsulation of the received MAC frame (step406). The TCP packet (step 410) may substantially comprise theinformation contained in the TCP packet (step 402).

In step 412, the TCP entity 430 a may communicate a TCP andacknowledgement packet to the MAC entity 430 b. The TCP portion of thepacket may comprise information being communicated from the receivingterminal 430 to the transmitting terminal 432, for example, feedbackinformation. The acknowledgement portion of the packet may compriseinformation that enables the TCP entity 432 b to determine that the TCPpacket (step 402) was successfully received by the TCP entity 430 a. Instep 414, the MAC entity 430 c may encapsulate the TCP andacknowledgement packet (step 412) and communicate a MAC frame to the MACentity 432 b. In step 416, the MAC entity 432 b may communicate a MACacknowledgement frame to the MAC entity 430 c.

In step 418, the MAC entity 432 b may communicate a TCP andacknowledgement packet to the TCP entity 432 a. The TCP andacknowledgement packet (step 418) may be derived by de-encapsulation ofthe received MAC frame (step 414). The TCP and acknowledgement packet(step 418) may substantially comprise the information contained in theTCP and acknowledgement packet (step 412). In step 420, the TCP entity432 b may communicate information to the coordination function 432 a.The communicated information may comprise an indication of an updatedTCP window size, Snd.Win=M+Δ. The variable Δ may represent a numberwhose value is greater than or equal to 0, for example. The communicatedinformation may also comprise a stop TCP timer indication. The stop TCPtimer indication may indicate that the timer, which was started inanticipation of an acknowledgement for the TCP packet (step 402), hasbeen stopped.

FIG. 5 is an exemplary flowchart illustrating message exchanges in anunsuccessful MAC communication, which may be utilized in connection withan embodiment of the invention. Referring to FIG. 5, there is shown atransmitting terminal 432 and a receiving terminal 430. The transmittingterminal may comprise a plurality of communication entities comprising acoordination function 432 a, a TCP entity 432 b, and a MAC entity 432 c.The receiving terminal may comprise a plurality of communicationentities comprising a MAC entity 430 a.

In step 502, the TCP entity 432 b may communicate a TCP packet 402 tothe MAC entity 432 c. In step 504, the TCP entity 432 b may communicateinformation to the coordination function 432 a. The communicatedinformation may comprise an indication of the TCP window size,Snd.Win=M. M may indicate an amount of data, as measured in octets, forexample. The variable M may represent a number whose value is greaterthan 1, for example. The communicated information may also comprise astart TCP timer indication. The TCP timer indication may indicate astart time for a time duration within which an acknowledgement isexpected from the receiving terminal 430.

In step 506, the MAC entity 432 c may encapsulate the TCP packet (step502) and communicate a MAC frame to the MAC entity 430 a. In step 508,the MAC entity 432 c may communicate information to the coordinationfunction 432 a. The communicated information may comprise a start MACtimer indication. The MAC timer indication may indicate a start time fora time duration within which an acknowledgement is expected from thereceiving terminal 430. Failure to receive an acknowledgement within thetime duration may result in the MAC entity 432 c abandoning attempts tocommunicate the MAC frame (step 506) to the receiving terminal 430. Ifthe MAC 432 c fails to receive an acknowledgement within a retransmittime duration, the MAC 432 c may attempt to retransmit the MAC frame.The number of retransmission attempts may be determined by thecontention window parameter CW_(win)=L. The variable L may represent anumber whose value is greater than or equal to 0, for example. Thenumber of retransmission attempts may occur during the time durationassociated with the MAC timer (step 508).

In steps 510 a, . . . , 510 n, the MAC entity 432 c may perform aplurality of retransmission attempts for the MAC frame (step 506) basedon the value for the contention window parameter CW_(win)=L. If anacknowledgement is not received in response to the transmitted MAC frame(step 506), or any of the retransmission attempts (steps 510 a, . . . ,510 n), in step 512 the MAC entity 432 c may communicate information tothe coordination function 432 a. The communicated information may alsocomprise a stop MAC timer indication. The stop MAC timer indication mayindicate that a MAC timer timeout has occurred.

In steps 514 a, . . . , 514 n, the TCP entity 432 b may perform aplurality of retransmission attempts for the TCP packet (step 502). Theplurality of retransmission attempts may occur during the time durationassociated with the TCP timer (step 504). In steps 516 a, . . . , 516 n,a plurality of MAC frames may be transmitted in response to thecorresponding TCP packet retransmission attempts (514 a, . . . , 514 n).

If an acknowledgement is not received in response to the transmitted TCPpacket (step 502), or any of the retransmission attempts (steps 514 a, .. . , 514 n), in step 518 the TCP entity 432 b may communicateinformation to the coordination function 432 a. The communicatedinformation may also comprise a stop TCP timer indication. The stop TCPtimer indication may indicate that a TCP timer timeout has occurred. Thecommunicated information may also comprise an indication of an updatedTCP window size, Snd.Win=1. The updated TCP window size Snd.Win=1 mayindicate that the TCP entity 432 b has entered a slow start state.

In some conventional systems, the value for the contention windowparameter, CW_(win), may be set to the value CW_(win)=L without regardfor the information content contained within the TCP packet (step 502).Consequently, the number of retransmission attempts by the MAC entity432 c may occur without regard to the information content containedwithin the MAC frame (step 506).

In various embodiments of the invention, the value for the contentionwindow parameter, CW_(win), may be set based on a priority levelassociated with the information content contained within the MAC frame.For example, for information content associated with a high prioritylevel, the contention window parameter may be set to a valueCW_(win)=L_(High), or for information content associated with a lowpriority level, the contention window parameter may be set to a valueCW_(win=L) _(Low), wherein L_(High)>L_(Low). In addition, the responseto a MAC timer timeout may be determined based on the assigned prioritylevel associated with the information content contained within the MACframe.

FIG. 6 is an exemplary flowchart illustrating message exchanges in anunsuccessful MAC communication for low priority level information, inaccordance with an embodiment of the invention. Referring to FIG. 6,there is shown a transmitting terminal 632 and a receiving terminal 630.The transmitting terminal may comprise a plurality of communicationentities comprising a coordination function 632 a, a source applicationentity 632 b, a TCP entity 632 c, and a MAC entity 632 d. The receivingterminal may comprise a plurality of communication entities comprising aMAC entity 630 a. Exemplary source application entities may compriseMPEG-4 encoders, database programs, and voice over IP (VOIP) encoders.

In step 602, the source application entity 632 b may communicate sourceinformation to the TCP entity 632 c. In step 604, the source applicationentity 632 b may communicate information to the coordination function632 a. The communicated information may comprise an indication for thepriority level=Low associated with the source information (step 602). Instep 606, the TCP entity 632 c may communicate a TCP packet to the MACentity 632 d. The TCP packet may comprise a sequence number associatedwith the TCP packet as indicated by Seg.Seq=P, where the variable P mayrepresent a sequence number.

In step 608, the TCP entity 632 c may communicate information to thecoordination function 632 a. The communicated information may comprisean indication of the TCP window size, Snd.Win=M. The communicatedinformation may comprise a start TCP timer indication. The communicatedinformation may also comprise an unacknowledged sequence number asindicated by Snd.Una=P. The unacknowledged sequence number may indicatea TCP packet (step 606) that was transmitted by the TCP entity 632 c,for which a corresponding acknowledgement has not been received, forexample.

In step 610, the coordination function 632 a may communicate a value forthe contention window parameter CW_(win)=L_(Low), which may be utilizedby the MAC entity 632 d in connection with a MAC frame that may betransmitted by the MAC entity 632 d in response to receipt of the TCPpacket (step 606). The value for the contention window parameter L_(Low)may be determined based on the priority class (step 604). In step 612,the MAC entity 632 d may encapsulate the TCP packet (step 606) andcommunicate a MAC frame to the MAC entity 630 a. In step 614, the MACentity 632 d may communicate information to the coordination function632 a. The communicated information may comprise a start MAC timerindication.

In steps 616 a, . . . , 616 n, the MAC entity 632 d may perform aplurality of retransmission attempts for the MAC frame (step 612) basedon the value for the contention window parameter CW_(win)=L_(Low). If anacknowledgement is not received in response to the transmitted MAC frame(step 612), or any of the retransmission attempts (steps 616 a, . . . ,616 n), in step 618 the MAC entity 632 d may communicate information tothe coordination function 632 a. The communicated information may alsocomprise a stop MAC timer indication. The stop MAC timer indication mayindicate that a MAC timer timeout has occurred.

In step 620, the coordination function 632 a may communicate a haltinstruction to the TCP entity 632 c in association with the TCP packet(step 606). The TCP packet may be identified based on the unacknowledgedsequence number Snd.Una=P (as in step 608). The halt instruction mayinstruct the TCP entity 632 c to suspend attempts to retransmit theunacknowledged TCP packet (step 606). The halt instruction may alsoinstruct the TCP entity 632 c to suspend entry into a slow start stateif an acknowledgement for the TCP packet (step 606) is not received. Instep 622, the TCP entity 632 c may communicate information to thecoordination function 632 a. The communicated information may comprise areset TCP timer indication. The reset TCP timer indication may indicatethat the TCP entity 632 c has ceased tracking a TCP timeout condition inconnection with the TCP packet (step 606). The TCP timer may continuetracking a TCP timeout condition that may occur in connection with TCPpackets that may have be transmitted by the TCP entity 632 c subsequentto transmission of the TCP packet (step 606). The communicatedinformation may also comprise an indication of an updated TCP windowsize, Snd.Win=M+Δ. The variable Δ may represent a number whose value isgreater than or equal to 0, for example.

FIG. 7 is an exemplary flowchart illustrating message exchanges in anunsuccessful MAC communication for high priority level information, inaccordance with an embodiment of the invention. Referring to FIG. 7,there is shown a transmitting terminal 632 and a receiving terminal 630.The transmitting terminal may comprise a plurality of communicationentities comprising a coordination function 632 a, a source applicationentity 632 b, a TCP entity 632 c, and a MAC entity 632 d. The receivingterminal may comprise a plurality of communication entities comprising aMAC entity 630 a.

In step 702, the source application entity 632 b may communicate sourceinformation to the TCP entity 632 c. In step 704, the source applicationentity 632 b may communicate information to the coordination function632 a. The communicated information may comprise an indication for thepriority level=High associated with the source information (step 702).In step 706, the TCP entity 632 c may communicate a TCP packet to theMAC entity 632 d. The TCP packet may comprise a sequence numberassociated with the TCP packet as indicated by Seg.Seq=P, where thevariable P may represent a sequence number.

In step 708, the TCP entity 632 c may communicate information to thecoordination function 632 a. The communicated information may comprisean indication of the TCP window size, Snd.Win=M. The communicatedinformation may comprise a start TCP timer indication. The communicatedinformation may also comprise an unacknowledged sequence number asindicated by Snd.Una=P. The unacknowledged sequence number may indicatea TCP packet (step 706) that was transmitted by the TCP entity 632 c,for which a corresponding acknowledgement has not been received, forexample.

In step 710, the coordination function 632 a may communicate a value forthe contention window parameter CW_(win)=L_(High), which may be utilizedby the MAC entity 632 d in connection with a MAC frame that may betransmitted by the MAC entity 632 d in response to receipt of the TCPpacket (step 706). The value for the contention window parameterL_(High) may be determined based on the priority class (step 704). Instep 712, the MAC entity 632 d may encapsulate the TCP packet (step 706)and communicate a MAC frame to the MAC entity 630 a. In step 714, theMAC entity 632 d may communicate information to the coordinationfunction 312 a. The communicated information may comprise a start MACtimer indication.

In steps 716 a, . . . , 716 n, the MAC entity 632 d may perform aplurality of retransmission attempts for the MAC frame (step 712) basedon the value for the contention window parameter CW_(win)=L_(High). Ifan acknowledgement is not received in response to the transmitted MACframe (step 712), or any of the retransmission attempts (steps 716 a, .. . , 716 n), in step 718 the MAC entity 632 d may communicateinformation to the coordination function 632 a. The communicatedinformation may also comprise a stop MAC timer indication. The stop MACtimer indication may indicate that a MAC timer timeout has occurred.

The time duration spanning the start MAC timer indication (step 714) andthe stop MAC timer indication (step 718) may comprise a substantialportion of the TCP timeout duration, for example. The number of TCPretransmission attempts prior to a TCP timeout, in various embodimentsof the invention, may be 0, and/or fewer in number than in someconventional systems as represented in steps 514 a, . . . , 514 n.

In step 720, the TCP entity 632 c may communicate information to thecoordination function 632 a. The communicated information may alsocomprise a stop TCP timer indication. The stop TCP timer indication mayindicate that a TCP timer timeout has occurred. The communicatedinformation may also comprise an indication of an updated TCP windowsize, Snd.Win=1. The updated TCP window size Snd.Win=1 may indicate thatthe TCP entity 632 c has entered a slow start state.

FIG. 8 is an exemplary flowchart illustrating exemplary steps for asystem for MAC layer specialization for voice and multimedia datastreams, in accordance with an embodiment of the invention. Referring toFIG. 8, in step 802, priority levels may be assigned to sourceinformation. The priority levels may be assigned based on theinformation content associated with source information. In step 804, anumber of MAC layer retransmission attempts associated with atransmitted MAC frame may be determined based on the priority levels. Ahigh priority level may be associated with a value L_(High,) while a lowpriority level may be associated with a value L_(Low), for example. Instep 806, a response to a MAC layer timeout condition may be determinedbased on the priority levels. For example, for high priority levelsource information, a higher number of MAC layer retransmissionattempts, L_(High), may be performed prior to a MAC timer timeout. Whena MAC timer timeout occurs, a subsequent TCP timer timeout may occurcausing the TCP layer entity to enter a slow start state. For lowpriority level source information, a lower number of MAC layerretransmission attempts, L_(Low), may be performed prior to a MAC timetimeout. When a MAC timer timeout occurs, the coordination function mayinstruct the TCP layer entity to continue packet processing and notenter a slow start state in response to a failure to receive anacknowledgement from the previously transmitted TCP packet.

In various embodiments of the invention a number of retry attempts bythe MAC layer entity 632 d may be based on a priority level associatedwith a video frame type contained with a MAC frame. I frames may carryfull image information and may be associated with a high priority level,for example. Consequently, a greater number of MAC layer retry attemptsmay be performed. B frames may carry sub-picture information and motionvectors. The impact of loss of a B frame for video quality may be lessthan the impact of loss of an I frame. B frames may be associated with alow priority level, for example. Consequently, a lesser number of MAClayer retry attempts may be performed. If a MAC layer timeout occurs inconnection with transmission and/or retransmission of B frameinformation, the coordination function 632 a may communicate aninstruction, to the TCP entity 632 c, to skip the corresponding TCPpacket.

Aspects of a system for medium access control (MAC) layer specializationfor voice and multimedia data streams may comprise a processor 210 thatenables determination of a number of attempts for transmitting one ormore MAC frames based on a corresponding one or more of a plurality ofpriority levels associated with different portion of multimediainformation. The number of attempts may occur within a time durationassociated with a transmission control protocol (TCP) packetcorresponding to the one or more MAC frames. The TCP packet may beencapsulated by utilizing a corresponding one or more MAC frames. TheMAC frames may be transmitted by a transmitting terminal 632 to areceiving terminal 630 via a wireless medium. A maximum number ofattempts for transmitting the one or more MAC frames may occur within atimeout period associated with the TCP packet. The timeout period maycomprise a time duration within which an acknowledgement in response totransmitting the TCP packet is expected from the receiving terminal 630.

In another aspect of the system, the processor 210 may enable a TCPentity 632 c to cease attempts to retransmit a TCP packet subsequent toa time duration associated with the one or more MAC frames based on theone or more of the plurality of priority levels. The time duration mayrepresent a timeout period associated with the MAC frame during whichthe maximum number of attempts for transmitting the MAC frame may beperformed. The processor 210 may instruct the TCP entity 632 c to stop atimer associated with the TCP packet. The instruction to stop the timerassociated with the TCP packet may be in connection with receipt of askip instruction from a coordination function 632 a. The TCP entity 632c may continue to measure time duration associated with a subsequent TCPpacket and/or previous TCP packet. The subsequent TCP packet and/orprevious TCP packet may have been transmitted at least once at the timeinstant in which timer associated with the TCP packet was stopped. TheTCP entity 632 c may not enter a slow start state based on failure toreceive an acknowledgement in response to transmitting and/orretransmitting the TCP packet. The slow start state may be defined basedon TCP specifications, for example.

In another aspect of the invention, the processor 210 may enable one ormore attempts to retransmit a TCP packet subsequent to a time durationassociated with the one or more MAC frames based on the one or more ofthe plurality of priority levels. The TCP entity 632 c may attempt totransmit the TCP packet subsequent to a MAC timeout. The processor 210may enable entry of a slow start state based on a failure to receive anacknowledgement in response to transmitting and/or retransmitting theTCP packet.

Accordingly, the present invention may be realized in hardware,software, or a combination of hardware and software. The presentinvention may be realized in a centralized fashion in at least onecomputer system, or in a distributed fashion where different elementsare spread across several interconnected computer systems. Any kind ofcomputer system or other apparatus adapted for carrying out the methodsdescribed herein is suited. A typical combination of hardware andsoftware may be a general-purpose computer system with a computerprogram that, when being loaded and executed, controls the computersystem such that it carries out the methods described herein.

The present invention may also be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which when loaded in a computer systemis able to carry out these methods. Computer program in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: a) conversion to anotherlanguage, code or notation; b) reproduction in a different materialform.

While the present invention has been described with reference to certainembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted withoutdeparting from the scope of the present invention. In addition, manymodifications may be made to adapt a particular situation or material tothe teachings of the present invention without departing from its scope.Therefore, it is intended that the present invention not be limited tothe particular embodiment disclosed, but that the present invention willinclude all embodiments falling within the scope of the appended claims.

What is claimed is:
 1. A method comprising: determining, by use of aprocessor, data for transmission from a radio frequency (RF) front endthat is coupled to a plurality of transmission antennas; assigning, byuse of the processor, a priority level associated with the data;determining, by use of the processor, a transmission window based on thepriority level, wherein the priority level determines a time duration ofthe transmission window; assigning one or more transmission antennasbased on the priority level to transmit the data; transmitting andretransmitting the data until an acknowledgement is received from atarget device receiving the data; and terminating retransmission of thedata when the time duration of the transmission window is reachedwithout receiving the acknowledgement.
 2. The method of claim 1, whereinthe time duration of the transmission window determines a number oftimes the data is retransmitted when the acknowledgment is not receivedfrom the target device.
 3. The method of claim 1, wherein the data istransmitted in a medium access control (MAC) frame.
 4. The method ofclaim 3, wherein the data is sent as a transmission control protocol(TCP) packet.
 5. The method of claim 1, further comprising setting atimer to determine when the time duration of the transmission window isreached.
 6. The method of claim 5, wherein the processor reverts to astart state when data transmission is terminated due to reaching end ofthe time duration.
 7. The method of claim 1, wherein the priority levelis assigned based on type of data being transmitted.
 8. A methodcomprising: determining, by use of a processor, data for transmissionfrom a radio frequency (RF) front end that is coupled to a plurality oftransmission antennas; assigning, by use of the processor, a prioritylevel associated with the data; determining, by use of the processor, anumber of times the data is to be transmitted based on the prioritylevel, wherein the priority level determines the number of times thedata is retransmitted; assigning one or more transmission antennas basedon the priority level to transmit the data; transmitting the data to atarget device until an acknowledgement of data reception is receivedfrom a target device; and terminating transmission of the data when thenumber of times the data is transmitted is reached without receiving theacknowledgement.
 9. The method of claim 8, wherein the data istransmitted in a medium access control (MAC) frame.
 10. The method ofclaim 9, wherein the data is sent as a transmission control protocol(TCP) packet.
 11. The method of claim 8, further comprising setting atimer to determine when the number is reached.
 12. The method of clam11, wherein the processor reverts to a start state when datatransmission is terminated due to reaching the number of times data isto be transmitted.
 13. The method of claim 8, wherein the priority levelis assigned based on type of data being transmitted.
 14. The method ofclaim 13, wherein the data is multimedia data.
 15. An apparatuscomprising: a radio frequency (RF) front end operable to couple to aplurality of transmission antennas; and a processor coupled to the RFfront end in which the processor, in association with the RF front end,is operable to determine data for transmission from the RF front end,assign a priority level associated with the data, determine atransmission window based on the priority level, wherein the prioritylevel determines a time duration of the transmission window, assign oneor more transmission antennas based on the priority level to transmitthe data, and cause transmission and retransmission of the data until anacknowledgement is received from a target device receiving the data orterminate retransmission of the data when the time duration of thetransmission window is reached without receiving the acknowledgement.16. The apparatus of claim 15, wherein the time duration of thetransmission window determines a number of times the data isretransmitted when the acknowledgment is not received from the targetdevice.
 17. The apparatus of claim 15, wherein the data is transmittedin a medium access control (MAC) frame.
 18. The apparatus of claim 17,wherein the data is sent as a transmission control protocol (TCP)packet.
 19. The apparatus of claim 15, wherein the processor is operableto set a timer to determine when the time duration of the transmissionwindow is reached.
 20. The apparatus of claim 1, wherein processorassigns the priority level based on type of data being transmitted.